﻿using Simple.Contracts.Models;
using Simple.Contracts.Models.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Simple.Contracts.Contracts
{
    /// <summary>
    /// 账号
    /// </summary>
    public interface IAccountService
    {
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<Result<LoginDto>> Login(LoginInput input);

        /// <summary>
        /// 授权菜单列表
        /// </summary>
        /// <returns></returns>
        Task<Result<List<MenuPageDto>>> MenuPageList();

        /// <summary>
        /// 授权功能列表
        /// </summary>
        /// <returns></returns>
        Task<Result<Dictionary<string, List<string>>>> AuthButtons();

        /// <summary>
        /// 发送登录验证码
        /// </summary>
        /// <param name="phone"></param>
        /// <returns></returns>
        Task<Result<bool>> SendLoginCode(string phone);
    }
}
